!-------------------------------------------------------------LICENSE--------------------------------------------------------------!
!                                                                                                                                  !
!The MAP code is written in Fortran language for magnetohydrodynamics (MHD) calculation with the adaptive mesh refinement (AMR)    !
!and Message Passing Interface (MPI) parallelization.                                                                              !
!                                                                                                                                  !
!Copyright (C) 2012                                                                                                                !
!Ronglin Jiang                                                                                                                     !
!rljiang@ssc.net.cn                                                                                                                !
!585 Guoshoujing Road. Pudong, Shanghai, P.R.C. 201203                                                                             !
!                                                                                                                                  !
!This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License         !
!as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.             !
!                                                                                                                                  !
!This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of    !
!MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.                        !
!                                                                                                                                  !
!You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software     !
!Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.                                                   !
!                                                                                                                                  !
!-------------------------------------------------------------LICENSE--------------------------------------------------------------!

!==================================================================================================================================|
subroutine block_output (current)
!==================================================================================================================================|

   use parameters
   use block_define

   implicit none

   type(block), pointer, intent(in) :: current

!----------------------------------------------------------------------------------------------------------------------------------|
   write(unit_datamap) current%id
   write(unit_datamap) current%lv, current%nc_x * current%nc_y, current%p_pos
   write(unit_datamap) current%dx
   write(unit_datamap) current%dy
   write(unit_datamap) current%x
   write(unit_datamap) current%y
   if (output_real8_flag .eq. 8) then
      write(unit_datamap) current%ro
      write(unit_datamap) current%mx
      write(unit_datamap) current%my
      write(unit_datamap) current%mz
      write(unit_datamap) current%bx
      write(unit_datamap) current%by
      write(unit_datamap) current%bz
      write(unit_datamap) current%en
      write(unit_datamap) current%az
      write(unit_datamap) current%gx
      write(unit_datamap) current%gy
   else
      write(unit_datamap) real(current%ro)
      write(unit_datamap) real(current%mx)
      write(unit_datamap) real(current%my)
      write(unit_datamap) real(current%mz)
      write(unit_datamap) real(current%bx)
      write(unit_datamap) real(current%by)
      write(unit_datamap) real(current%bz)
      write(unit_datamap) real(current%en)
      write(unit_datamap) real(current%az)
      write(unit_datamap) real(current%gx)
      write(unit_datamap) real(current%gy)
   endif

!----------------------------------------------------------------------------------------------------------------------------------|
   return
end subroutine block_output
